Micron Document
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| SparkN0de-git | SparkN0de |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


Displaying Raw • Download


libs/able/docs/example.rst 1.8.2-pre (3108914c) Text, 4.43 KB

Tc9d1d9Usage Examples
Tc9d1d9==============

Tc9d1d9Alert
Tc9d1d9-----

Tb4b4b4.. Tff7b72literalincludeTb4b4b4:: ./examples/alert.py
T56d364:language: python

Full example code: Ta5d6ff`alert Tffd700<https://github.com/b3b/able/blob/master/examples/alert/>Ta5d6ff`_


Tc9d1d9Change MTU
Tc9d1d9----------
Tb4b4b4.. Tff7b72literalincludeTb4b4b4:: ./examples/mtu.py
T56d364:language: python


Tc9d1d9Scan settings
Tc9d1d9-------------

Tb4b4b4.. Tff7b72code-blockTb4b4b4:: Tff7b72python

Tff7b72from T7ee787able Tff7b72import Te6edf3BluetoothDispatcher
Tff7b72from T7ee787ableT7ee787.T7ee787scan_settings Tff7b72import Te6edf3ScanSettingsBuilderTb4b4b4, Te6edf3ScanSettings

T8b949e# Use faster detection (more power usage) mode
Te6edf3settings Tff7b72= Te6edf3ScanSettingsBuilderTb4b4b4(Tb4b4b4)Tff7b72.Td2a8ffsetScanModeTb4b4b4(Te6edf3ScanSettingsTff7b72.Td2a8ffSCAN_MODE_LOW_LATENCYTb4b4b4)
Te6edf3BluetoothDispatcherTb4b4b4(Tb4b4b4)Tff7b72.Td2a8ffstart_scanTb4b4b4(Te6edf3settingsTff7b72=Te6edf3settingsTb4b4b4)


Tc9d1d9Scan filters
Tc9d1d9------------

Tb4b4b4.. Tff7b72code-blockTb4b4b4:: Tff7b72python

Tff7b72from T7ee787able Tff7b72import Te6edf3BluetoothDispatcher
Tff7b72from T7ee787ableT7ee787.T7ee787filters Tff7b72import Tb4b4b4(
Te6edf3DeviceAddressFilterTb4b4b4,
Te6edf3DeviceNameFilterTb4b4b4,
Te6edf3ManufacturerDataFilterTb4b4b4,
Te6edf3ServiceDataFilterTb4b4b4,
Te6edf3ServiceUUIDFilter
Tb4b4b4)

Te6edf3ble Tff7b72= Te6edf3BluetoothDispatcherTb4b4b4(Tb4b4b4)

T8b949e# Start scanning with the condition that device has one of names: "Device1" or "Device2"
Te6edf3bleTff7b72.Td2a8ffstart_scanTb4b4b4(Te6edf3filtersTff7b72=Tb4b4b4[Te6edf3DeviceNameFilterTb4b4b4(Ta5d6ff"Ta5d6ffDevice1Ta5d6ff"Tb4b4b4)Tb4b4b4, Te6edf3DeviceNameFilterTb4b4b4(Ta5d6ff"Ta5d6ffDevice2Ta5d6ff"Tb4b4b4)Tb4b4b4]Tb4b4b4)
Te6edf3bleTff7b72.Td2a8ffstop_scanTb4b4b4(Tb4b4b4)

T8b949e# Start scanning with the condition that
T8b949e# device advertises "180f" service and one of names: "Device1" or "Device2"
Te6edf3bleTff7b72.Td2a8ffstart_scanTb4b4b4(Te6edf3filtersTff7b72=Tb4b4b4[
Te6edf3ServiceUUIDFilterTb4b4b4(Ta5d6ff'Ta5d6ff0000180f-0000-1000-8000-00805f9b34fbTa5d6ff'Tb4b4b4) Tff7b72& Te6edf3DeviceNameFilterTb4b4b4(Ta5d6ff"Ta5d6ffDevice1Ta5d6ff"Tb4b4b4)Tb4b4b4,
Te6edf3ServiceUUIDFilterTb4b4b4(Ta5d6ff'Ta5d6ff0000180f-0000-1000-8000-00805f9b34fbTa5d6ff'Tb4b4b4) Tff7b72& Te6edf3DeviceNameFilterTb4b4b4(Ta5d6ff"Ta5d6ffDevice2Ta5d6ff"Tb4b4b4)
Tb4b4b4]Tb4b4b4)


Tc9d1d9Adapter state
Tc9d1d9-------------

Tb4b4b4.. Tff7b72literalincludeTb4b4b4:: ./examples/adapter_state_change.py
T56d364:language: python


Tc9d1d9Advertising
Tc9d1d9-----------

Tc9d1d9Advertise with data and additional (scannable) data
Tc9d1d9^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Tb4b4b4.. Tff7b72code-blockTb4b4b4:: Tff7b72python

Tff7b72from T7ee787able Tff7b72import Te6edf3BluetoothDispatcher
Tff7b72from T7ee787ableT7ee787.T7ee787advertising Tff7b72import Tb4b4b4(
Te6edf3AdvertiserTb4b4b4,
Te6edf3AdvertiseDataTb4b4b4,
Te6edf3ManufacturerDataTb4b4b4,
Te6edf3IntervalTb4b4b4,
Te6edf3ServiceUUIDTb4b4b4,
Te6edf3ServiceDataTb4b4b4,
Te6edf3TXPowerTb4b4b4,
Tb4b4b4)

Te6edf3advertiser Tff7b72= Te6edf3AdvertiserTb4b4b4(
Te6edf3bleTff7b72=Te6edf3BluetoothDispatcherTb4b4b4(Tb4b4b4)Tb4b4b4,
Te6edf3dataTff7b72=Te6edf3AdvertiseDataTb4b4b4(Te6edf3ServiceUUIDTb4b4b4(Ta5d6ff"Ta5d6ffaaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaaTa5d6ff"Tb4b4b4)Tb4b4b4)Tb4b4b4,
Te6edf3scan_dataTff7b72=Te6edf3AdvertiseDataTb4b4b4(Te6edf3ManufacturerDataTb4b4b4(Tffa657idTff7b72=T79c0ff0xAABBTb4b4b4, Te6edf3dataTff7b72=Ta5d6ffbTa5d6ff"Ta5d6ffsome dataTa5d6ff"Tb4b4b4)Tb4b4b4)Tb4b4b4,
Te6edf3intervalTff7b72=Te6edf3IntervalTff7b72.Td2a8ffMEDIUMTb4b4b4,
Te6edf3tx_powerTff7b72=Te6edf3TXPowerTff7b72.Td2a8ffMEDIUMTb4b4b4,
Tb4b4b4)

Te6edf3advertiserTff7b72.Td2a8ffstartTb4b4b4(Tb4b4b4)


Tc9d1d9Set and advertise device name
Tc9d1d9^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Tb4b4b4.. Tff7b72code-blockTb4b4b4:: Tff7b72python

Tff7b72from T7ee787able Tff7b72import Te6edf3BluetoothDispatcher
Tff7b72from T7ee787ableT7ee787.T7ee787advertising Tff7b72import Te6edf3AdvertiserTb4b4b4, Te6edf3AdvertiseDataTb4b4b4, Te6edf3DeviceName

Te6edf3ble Tff7b72= Te6edf3BluetoothDispatcherTb4b4b4(Tb4b4b4)
Te6edf3bleTff7b72.Td2a8ffname Tff7b72= Ta5d6ff"Ta5d6ffNew test device nameTa5d6ff"

T8b949e# There must be a wait and check, it takes time for new name to take effect
Tffa657printTb4b4b4(Ta5d6fffTa5d6ff"Ta5d6ffNew device name is set: Tffd700{Te6edf3bleTff7b72.Td2a8ffnameTffd700}Ta5d6ff"Tb4b4b4)

Te6edf3AdvertiserTb4b4b4(
Te6edf3bleTff7b72=Te6edf3bleTb4b4b4,
Te6edf3dataTff7b72=Te6edf3AdvertiseDataTb4b4b4(Te6edf3DeviceNameTb4b4b4(Tb4b4b4)Tb4b4b4)
Tb4b4b4)


Tc9d1d9Battery service data
Tc9d1d9^^^^^^^^^^^^^^^^^^^^

Tb4b4b4.. Tff7b72literalincludeTb4b4b4:: ./examples/advertising_battery.py
T56d364:language: python


Tc9d1d9Use iBeacon advertising format
Tc9d1d9^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Tb4b4b4.. Tff7b72code-blockTb4b4b4:: Tff7b72python

Tff7b72import T7ee787uuid
Tff7b72from T7ee787able Tff7b72import Te6edf3BluetoothDispatcher
Tff7b72from T7ee787ableT7ee787.T7ee787advertising Tff7b72import Te6edf3AdvertiserTb4b4b4, Te6edf3AdvertiseDataTb4b4b4, Te6edf3ManufacturerData


Te6edf3data Tff7b72= Te6edf3AdvertiseDataTb4b4b4(
Te6edf3ManufacturerDataTb4b4b4(
T79c0ff0x4CTb4b4b4, T8b949e# Apple Manufacturer ID
Tffa657bytesTb4b4b4(Tb4b4b4[
T79c0ff0x2Tb4b4b4, T8b949e# SubType: Custom Manufacturer Data
T79c0ff0x15 T8b949e# Subtype lenth
Tb4b4b4]Tb4b4b4) Tff7b72+
Te6edf3uuidTff7b72.Td2a8ffuuid4Tb4b4b4(Tb4b4b4)Tff7b72.Td2a8ffbytes Tff7b72+ T8b949e# UUID of beacon
Tffa657bytesTb4b4b4(Tb4b4b4[
T79c0ff0Tb4b4b4, T79c0ff15Tb4b4b4, T8b949e# Major value
T79c0ff0Tb4b4b4, T79c0ff1Tb4b4b4, T8b949e# Minor value
T79c0ff10 T8b949e# RSSI, dBm at 1m
Tb4b4b4]Tb4b4b4)Tb4b4b4)
Tb4b4b4)

Te6edf3AdvertiserTb4b4b4(Te6edf3BluetoothDispatcherTb4b4b4(Tb4b4b4)Tb4b4b4, Te6edf3dataTb4b4b4)Tff7b72.Td2a8ffstartTb4b4b4(Tb4b4b4)


Tc9d1d9Android Services
Tc9d1d9----------------

Tc9d1d9BLE devices scanning service
Tc9d1d9^^^^^^^^^^^^^^^^^^^^^^^^^^^^

**main.py**

Tb4b4b4.. Tff7b72literalincludeTb4b4b4:: ./examples/service_scan_main.py
T56d364:language: python

**service.py**

Tb4b4b4.. Tff7b72literalincludeTb4b4b4:: ./examples/service_scan_service.py
T56d364:language: python

Full example code: Ta5d6ff`service_scan Tffd700<https://github.com/b3b/able/blob/master/examples/service_scan/>Ta5d6ff`_


Tc9d1d9Advertising service
Tc9d1d9^^^^^^^^^^^^^^^^^^^

**main.py**

Tb4b4b4.. Tff7b72literalincludeTb4b4b4:: ./examples/service_advertise_main.py
T56d364:language: python

**service.py**

Tb4b4b4.. Tff7b72literalincludeTb4b4b4:: ./examples/service_advertise_service.py
T56d364:language: python

Full example code: Ta5d6ff`service_advertise Tffd700<https://github.com/b3b/able/blob/master/examples/service_advertise/>Ta5d6ff`_


Tc9d1d9Connect to multiple devices
Tc9d1d9---------------------------

Tb4b4b4.. Tff7b72literalincludeTb4b4b4:: ./examples/multi_devices/main.py
T56d364:language: python

Full example code: Ta5d6ff`multi_devices Tffd700<https://github.com/b3b/able/blob/master/examples/multi_devices/>Ta5d6ff`_


──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────